Eclipse Platform
Pre-release 3.0

org.eclipse.core.runtime
Interface IExtensionRegistry


public interface IExtensionRegistry

The extension registry holds the master list of all discovered elements, extension points and extensions.

The extension registry can be queried, by name, for extension points and extensions.

Extensions and extension points are declared by generic entities called elements. The only fact known about elements is that they have unique string-based identifiers.

This interface is not intended to be implemented by clients.

Since:
3.0

Method Summary
 void addRegistryChangeListener(IRegistryChangeListener listener)
          Adds the given listener for registry change events.
 void addRegistryChangeListener(IRegistryChangeListener listener, String elementId)
          Adds the given listener for registry change events related to the given element.
 IConfigurationElement[] getConfigurationElementsFor(String extensionPointId)
          Returns all configuration elements from all extensions configured into the identified extension point.
 IConfigurationElement[] getConfigurationElementsFor(String elementId, String extensionPointName)
          Returns all configuration elements from all extensions configured into the identified extension point.
 IConfigurationElement[] getConfigurationElementsFor(String elementId, String extensionPointName, String extensionId)
          Returns all configuration elements from the identified extension.
 String[] getElementIdentifiers()
          Returns all elements that declare extensions and/or extension points.
 IExtension getExtension(String extensionPointId, String extensionId)
          Returns the specified extension in this extension registry, or null if there is no such extension.
 IExtension getExtension(String elementId, String extensionPointName, String extensionId)
          Returns the specified extension in this extension registry, or null if there is no such extension.
 IExtensionPoint getExtensionPoint(String extensionPointId)
          Returns the extension point with the given extension point identifier in this extension registry, or null if there is no such extension point.
 IExtensionPoint getExtensionPoint(String elementId, String extensionPointName)
          Returns the extension point in this extension registry with the given element identifier and extension point simple identifier, or null if there is no such extension point.
 IExtensionPoint[] getExtensionPoints()
          Returns all extension points known to this extension registry.
 IExtensionPoint[] getExtensionPoints(String elementId)
          Returns all extension points declared by the given element.
 IExtension[] getExtensions(String elementId)
          Returns all extensions declared by the given element.
 void removeRegistryChangeListener(IRegistryChangeListener listener)
          Removes the given registry change listener from this registry.
 

Method Detail

addRegistryChangeListener

public void addRegistryChangeListener(IRegistryChangeListener listener,
                                      String elementId)
Adds the given listener for registry change events related to the given element. Has no effect if an identical listener is already registered. After completion of this method, the given listener will be registered for events related to the exactly the specified element. If no element identifier is specified, the listener will receive notifications for changes to any element.

Once registered, a listener starts receiving notification of changes to the registry. Registry change notifications are sent asynchronously. The listener continues to receive notifications until it is removed.

Parameters:
listener - the listener
elementId - the identifier of the element to which to listen for changes
See Also:
IRegistryChangeListener, IRegistryChangeEvent, removeRegistryChangeListener(org.eclipse.core.runtime.IRegistryChangeListener)

addRegistryChangeListener

public void addRegistryChangeListener(IRegistryChangeListener listener)
Adds the given listener for registry change events. Has no effect if an identical listener is already registered.

This method is equivalent to:

     addRegistryChangeListener(listener,null);
 

Parameters:
listener - the listener
See Also:
IRegistryChangeListener, IRegistryChangeEvent, addRegistryChangeListener(IRegistryChangeListener, String), removeRegistryChangeListener(org.eclipse.core.runtime.IRegistryChangeListener)

getConfigurationElementsFor

public IConfigurationElement[] getConfigurationElementsFor(String extensionPointId)
Returns all configuration elements from all extensions configured into the identified extension point. Returns an empty array if the extension point does not exist, has no extensions configured, or none of the extensions contain configuration elements.

Parameters:
extensionPointId - the unique identifier of the extension point (e.g. "org.eclipse.core.resources.builders")
Returns:
the configuration elements

getConfigurationElementsFor

public IConfigurationElement[] getConfigurationElementsFor(String elementId,
                                                           String extensionPointName)
Returns all configuration elements from all extensions configured into the identified extension point. Returns an empty array if the extension point does not exist, has no extensions configured, or none of the extensions contain configuration elements.

Parameters:
elementId - the unique identifier of the element (e.g. "org.eclipse.core.resources")
extensionPointName - the simple identifier of the extension point (e.g. "builders")
Returns:
the configuration elements

getConfigurationElementsFor

public IConfigurationElement[] getConfigurationElementsFor(String elementId,
                                                           String extensionPointName,
                                                           String extensionId)
Returns all configuration elements from the identified extension. Returns an empty array if the extension does not exist or contains no configuration elements.

Parameters:
elementId - the unique identifier of the element (e.g. "org.eclipse.core.resources")
extensionPointName - the simple identifier of the extension point (e.g. "builders")
extensionId - the unique identifier of the extension (e.g. "com.example.acme.coolbuilder)
Returns:
the configuration elements

getExtension

public IExtension getExtension(String extensionPointId,
                               String extensionId)
Returns the specified extension in this extension registry, or null if there is no such extension. The first parameter identifies the extension point, and the second parameter identifies an extension plugged in to that extension point.

Parameters:
extensionPointId - the unique identifier of the extension point (e.g. "org.eclipse.core.resources.builders")
extensionId - the unique identifier of the extension (e.g. "com.example.acme.coolbuilder")
Returns:
the extension, or null

getExtension

public IExtension getExtension(String elementId,
                               String extensionPointName,
                               String extensionId)
Returns the specified extension in this extension registry, or null if there is no such extension. The first two parameters identify the extension point, and the third parameter identifies an extension plugged in to that extension point.

Parameters:
elementId - the unique identifier of the element (e.g. "org.eclipse.core.resources")
extensionPointName - the simple identifier of the extension point (e.g. "builders")
extensionId - the unique identifier of the extension (e.g. "com.example.acme.coolbuilder")
Returns:
the extension, or null

getExtensionPoint

public IExtensionPoint getExtensionPoint(String extensionPointId)
Returns the extension point with the given extension point identifier in this extension registry, or null if there is no such extension point.

Parameters:
extensionPointId - the unique identifier of the extension point (e.g., "org.eclipse.core.resources.builders")
Returns:
the extension point, or null

getExtensionPoint

public IExtensionPoint getExtensionPoint(String elementId,
                                         String extensionPointName)
Returns the extension point in this extension registry with the given element identifier and extension point simple identifier, or null if there is no such extension point.

Parameters:
elementId - the unique identifier of the element (e.g. "org.eclipse.core.resources")
extensionPointName - the simple identifier of the extension point (e.g. " builders")
Returns:
the extension point, or null

getExtensionPoints

public IExtensionPoint[] getExtensionPoints()
Returns all extension points known to this extension registry. Returns an empty array if there are no extension points.

Returns:
the extension points known to this extension registry

getExtensionPoints

public IExtensionPoint[] getExtensionPoints(String elementId)
Returns all extension points declared by the given element. Returns an empty array if the given element does not declare any extension points.

Parameters:
elementId - the unique identifier of the element (e.g. "org.eclipse.core.resources")
Returns:
the extension points in this registry declared by the given element

getExtensions

public IExtension[] getExtensions(String elementId)
Returns all extensions declared by the given element. Returns an empty array if the given element does not declare any extensions.

Parameters:
elementId - the unique identifier of the element (e.g. "org.eclipse.core.resources")
Returns:
the extensions in this registry declared by the given element

getElementIdentifiers

public String[] getElementIdentifiers()
Returns all elements that declare extensions and/or extension points. Returns an empty array if there is no known extension/extension point elements in this registry.

Returns:
the identifiers of all elements known to this registry

removeRegistryChangeListener

public void removeRegistryChangeListener(IRegistryChangeListener listener)
Removes the given registry change listener from this registry. Has no effect if an identical listener is not registered.

Parameters:
listener - the listener
See Also:
IRegistryChangeListener, addRegistryChangeListener(org.eclipse.core.runtime.IRegistryChangeListener, java.lang.String)

Eclipse Platform
Pre-release 3.0

Copyright (c) IBM Corp. and others 2000, 2003. All Rights Reserved.